iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0

今天來做遊戲中心。

running = True
clock = pygame.time.Clock()

while running:
    clock.tick(60)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
  • running = True:這行程式碼定義了一個布林變數作為控制條件。當 running 為 True 時,迴圈會不斷執行;當 running 被設定為 False 時,迴圈就會終止,結束遊戲的執行。
  • clock = pygame.time.Clock():這行建立了一個 Clock 物件,用來管理幀率(Frame Rate)。幀率是指每秒畫面更新的次數,通常使用「幀數」(FPS, Frames Per Second)來表示。幀率過低會導致遊戲畫面卡頓,而幀率過高則可能消耗過多資源,導致效能問題。
  • while running::這是遊戲的主迴圈,當 running 為 True 時,程式會不斷執行此迴圈內的內容。在遊戲開發中,這個主迴圈通常負責更新遊戲畫面、檢查使用者輸入事件、進行遊戲邏輯判斷等。
  • clock.tick(60):設定遊戲的幀率為 60 FPS,也就是每秒畫面更新 60 次。這樣做能夠確保遊戲的執行速度穩定一致,避免因為硬體效能不同而造成的速度差異。若省略 clock.tick(60),主迴圈將會盡可能快速執行,導致幀率過高。
  • for event in pygame.event.get()::這行程式碼會遍歷目前所有的事件,pygame.event.get() 會返回一個列表,其中包含了所有尚未處理的事件。這些事件可能是滑鼠移動、按鍵輸入、視窗關閉請求等。
  • if event.type == pygame.QUIT::檢查目前的事件是否為 QUIT 事件,即視窗被要求關閉的事件。當使用者點擊視窗的「關閉」按鈕時,event.type 會等於 pygame.QUIT,此時 running 被設為 False,結束主迴圈並關閉程式。

我也是第一次使用 clock.tick() ,之前從來沒想過說要加上這個,但沒加的話可能會變成漫畫那樣一張一張的出現,而非現在這樣能順暢的移動,所以還是乖乖加上去了。

那今天就先這樣。/images/emoticon/emoticon29.gif


上一篇
建立磚塊矩形陣列
下一篇
玩家輸入與球的位置更新
系列文
從Python入門到自製遊戲:30天鐵人挑戰之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言